Submarine swaps
(on-chain) bitcoin と LN bitcoin を trustless に swap する技術
on-chain bitcoin の送信者は LN 同様に HTLC にロックする スクリプトの hash preimage を LN invoice preimage と同じにする
つまり、swap する人が LN 送金を行い preimage を手に入れると unlock できるスクリプトになっている
on-chain bitcoin の送信者 = LN の受信者であるから、invoice を発行する側つまり preimage を生成する側である
LN を払い preimage が手に入れば、それを使って最初に作成した on-chain output をアンロックできる
LN が支払われなかった場合に備えて、on-chain bitcoin 送信者は refund tx を作る必要がある
refund 先をどうするかは wallet ごとに検討する必要がある
on-chain sender -> swapper -> LN receiver という構成があるか?
LN receiver が preimage を作成
on-chain sender はその preimage に HTLC でロック
swapper は LN receiver に送金することで preimage を入手して、HTLC を unlock できる
この場合も refund tx が必要
refund には on-chain sender の署名が必要と思うが、それに対応している wallet はあまりないのでは?
submarineswaps.org は swap 申請したときに、refund tx を生成してくれるので、それに自分で署名する感じかな?
Breeze は timelock 切れたあとの unlock は breeze が生成する privkey で unlock できるようになっていそう
script と prive key を breeze wallet では確認することができる
ただそれは on-chain reciever だから、on-chain sender は reciever を trust しないといけない?
LN receiver と swapper が同じ場合は別に気にしなくてもいいかもしれない
swap に失敗して LN で受け取れなかったら、receiver が on-chain で timelock 後の条件を使って受け取ればいい
on-chain のスマコンへロックする署名済み tx さえあれば、chain にcommitしなくても lightning 送金していい?
lightning が送金できたら、スマコンへのロックとスマコンからのアンロック両方の tx をブロードキャストする?